package com.ocean.admin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ocean.admin.entity.SysUser;
import com.ocean.admin.model.dto.user.SysUserQueryDTO;
import com.ocean.admin.model.vo.user.SysUserVo;
import com.ocean.admin.extension.security.core.SysUserDetails;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 用户信息表 Mapper 接口
 * </p>
 *
 * @author zhang
 * @since 2022-08-16
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

    /**
     * 通过用户名查询用户
     *
     * @param username 用户名
     * @return 用户对象信息
     */
    SysUserDetails selectUserByUsername(@Param("username") String username);

    /**
     * 分页查询用户
     *
     * @param queryDTO 查询条件
     * @return 结果
     */
    IPage<SysUserVo> pageList(Page<SysUserVo> page, @Param("queryDTO") SysUserQueryDTO queryDTO);

    /**
     * 查询已有的岗位ID
     *
     * @param userId 用户ID
     * @return 结果
     */
    List<Long> selectPost( @Param("userId") Long userId);

    /**
     * 查询已有的角色ID
     *
     * @param userId 用户ID
     * @return 结果
     */
    List<Long> selectRole(@Param("userId") Long userId);
}
